package com.clps.dev.sms.service.sm;

import java.util.List;

import com.clps.dev.sms.common.result.ResponseResult;
import com.clps.dev.sms.entity.sm.Department;

/**  
* @ClassName: IDepartmentService  
* @Description: IDepartmentService  
* @since JDK 1.8 
* @author RuiShan.Yang  
* @date 2018-11-27 16:05:17  
* 
*/
public interface IDepartmentService {

	/**  
	* @Title: exportDepartmentByExcel  
	* @Description: 导出部门信息到excel
	* @param departmentList
	* @param excelPath
	* @throws  
	*/
	public ResponseResult<Department> exportDepartmentByExcel(List<Department> departmentList, String excelPath);

	/**  
	* @Title: addDepartment  
	* @Description: 新增一个部门
	* @param department
	* @return String
	* @throws  
	*/

	public ResponseResult<Department>  addDepartment(Department department);

	/**  
	* @Title: deleteDepartmentById  
	* @Description: 通过部门Id删除部门
	* @param departmentId
	* @return String
	* @throws  
	*/
	public ResponseResult<Department>  deleteDepartmentById(Integer departmentId);

	/**  
	* @Title: editDepartment  
	* @Description: 更新部门信息
	* @param department
	* @return String
	* @throws  
	*/
	public ResponseResult<Department>  editDepartment(Department department);

	/**  
	* @Title: queryDepartmentById  
	* @Description:通过id查找部门
	* @param departmentId
	* @return Department
	* @throws  
	*/
	public ResponseResult<Department>  queryDepartmentById(Integer departmentId);

	/**  
	* @Title: queryDepartmentByLikeName  
	* @Description: 通过部门名称模糊查询
	* @param departmentName
	* @return List<Department>
	* @throws  
	*/
	public ResponseResult<Department>  queryDepartmentByLikeName(String departmentName);

	/**  
	* @Title: queryAllDepartment  
	* @Description: 查询所有部门
	* @return List<Department>
	* @throws  
	*/
	public ResponseResult<Department>  queryAllDepartment();

	/**  
	* @Title: queryBySql  
	* @Description: 通过SQL语句查找
	* @param sql
	* @return List<Department>
	* @throws  
	*/
	public ResponseResult<Department>  queryDepartmentBySql(String sql);

	/**  
	* @Title: isUniqueByField  
	* @Description: 通过字段值查唯一性
	* @param permissionFieldName
	* @param permissionFieldVal
	* @return boolean
	* @throws  
	*/
	public ResponseResult<Department>  isUniqueByField(String departmentFieldName, String departmentFieldVal);
}
